package com.youlu.campus.website.service;

import com.youlu.campus.website.common.enums.PlatformType;
import com.youlu.campus.website.entity.CompanyDynamicDetail;
import com.youlu.campus.website.entity.CompanyDynamicDetailPageQuery;
import org.springframework.data.domain.Page;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 公司动态详情
 */
public interface CompanyDynamicDetailService {


    /**
     * 新增/修改动态详情
     *
     * @param detail
     * @return
     */
    public CompanyDynamicDetail save(CompanyDynamicDetail detail);

    /**
     * 根据 ID 查询动态详情
     *
     * @param id
     * @return
     */
    public CompanyDynamicDetail findById(String id);

    /**
     * 根据 ID 删除动态详情
     *
     * @param id
     */
    public void delete(String id);

    /**
     * 按月份查询动态详情
     *
     * @param startOfMonth
     * @param startOfNextMonth
     * @return
     */
    public List<CompanyDynamicDetail> findByPlatformAndPublishTimeBetween(PlatformType platform, LocalDateTime startOfMonth, LocalDateTime startOfNextMonth);

    /**
     * 分页 查询动态详情
     *
     * @param pageQuery
     * @return
     */
    public Page<CompanyDynamicDetail> findByPage(CompanyDynamicDetailPageQuery pageQuery);

    /**
     * 根据类型 查询动态详情
     *
     * @param type
     * @return
     */
    public List<CompanyDynamicDetail> findByTypeAndTitleAndPlatformType(PlatformType platform, String type, String title);

    /**
     * 根据平台类型 获取 最新 发布动态数据
     *
     * @return
     */
    public CompanyDynamicDetail findFirstByPlatformTypeOrderByPublishTimeDesc(PlatformType platform);

}